package com.wxservice.service;

import com.wxservice.domain.request.TagREQ;
import com.wxservice.domain.request.UserTagREQ;
import com.wxservice.domain.request.WXUserREQ;


public interface WXUserManageService {


    /**
     * @param wxUserREQ
     * @return String
     * @Note:根据WXUserREQ获取公众号的openId最大为10000
     * @Author:HaoZhao
     * @Date:2018/11/6 16:48
     **/
    String listUserOpenId(WXUserREQ wxUserREQ);

    /**
     * @param wxUserREQ
     * @return String
     * @Note:根据WXUserREQ获取指定用户的基本信息
     * @Author:HaoZhao
     * @Date:2018/11/6 16:48
     **/
    String getUserInfo(WXUserREQ wxUserREQ);


    /**
     * @param wxUserREQ
     * @return String
     * @Note:根据WXUserREQ获取多个用户的基本信息
     * @Author:HaoZhao
     * @Date:2018/11/6 16:48
     **/
    String listUserInfo(WXUserREQ wxUserREQ);
    /**
     * @param tagREQ
     * @return String
     * @Note:根据tagREQ创建给公众号tag
     * @Author:HaoZhao
     * @Date:2018-11-7 10:55:56
     **/
    String insertTag(TagREQ tagREQ);


    /**
     * @param access_token
     * @return String
     * @Note:根据公众号access_token获取该公众号所有用户标签
     * @Author:HaoZhao
     * @Date:2018-11-7 10:55:56
     **/
    String listTag(String access_token);

    /**
     * @param tagREQ
     * @return String
     * @Note:根据tagREQ给入的信息修改公众号tag的名字
     * @Author:HaoZhao
     * @Date:2018-11-7 10:55:56
     **/
    String updateTag(TagREQ tagREQ);

    /**
     * @param tagREQ
     * @return String
     * @Note:根据tagREQ给入的信息删除公众号tag
     * @Author:HaoZhao
     * @Date:2018-11-7 10:55:56
     **/
    String deleteTag(TagREQ tagREQ);




    /**
     * @param userTagREQ
     * @return String
     * @Note:根据userTagREQ获取标签下粉丝列表
     * @Author:HaoZhao
     * @Date:2018-11-7 14:22:56
     **/
    String listUserByTag(UserTagREQ userTagREQ);


    /**
     * @param userTagREQ
     * @return String
     * @Note:根据userTagREQ批量为用户打标签
     * @Author:HaoZhao
     * @Date:2018-11-7 14:22:56
     **/
    String addUsersToTag(UserTagREQ userTagREQ);


    /**
     * @param userTagREQ
     * @return String
     * @Note:根据userTagREQ批量取消用户标签
     * @Author:HaoZhao
     * @Date:2018-11-7 15:25:24
     **/
    String deleteUsersToTag(UserTagREQ userTagREQ);

    /**
     * @param userTagREQ
     * @return String
     * @Note:根据UserTagREQ获取用户身上的标签列表
     * @Author:HaoZhao
     * @Date:2018-11-7 15:25:27
     **/
    String listTagsByUser(UserTagREQ userTagREQ);
}
